Conversation
ArthurKun21
commented
Feb 14, 2026
- Following Update Project Dependencies and Gradle Build Configurations #1 going to perform some dependency upgrade and try to resolve any issues accompanying it
Summary of ChangesHello @ArthurKun21, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request primarily focuses on a comprehensive dependency upgrade across the project, updating core libraries like Kotlin, Coroutines, Ktor, and Vert.x to their latest versions. This involved adapting the codebase to new API changes, particularly in asynchronous operations with Vert.x and byte channel handling with Ktor. Additionally, several internal utility classes were refactored for improved maintainability and to remove deprecated dependencies, ensuring compatibility and leveraging new features from the updated ecosystem. Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
|
Found a project that uses the latest version of adam, going to try it on my forked version of it |
There was a problem hiding this comment.
Code Review
This pull request updates several project dependencies and adapts the codebase to the new APIs. While most of the changes are correct adaptations, I've found a critical issue in the integration tests that will cause a compilation failure due to a type mismatch. Additionally, there are several performance regressions in the Ktor-based transport layer and test stubs due to inefficient use of the new Ktor IO APIs, leading to unnecessary memory allocations. I have provided suggestions on how to fix these performance issues by using ByteBuffer for more efficient, zero-copy operations. The other changes look good.
adam/src/integrationTest/kotlin/com/malinskiy/adam/integration/PortForwardE2ETest.kt
Show resolved
Hide resolved
adam/src/integrationTest/kotlin/com/malinskiy/adam/integration/PortForwardE2ETest.kt
Show resolved
Hide resolved
transport-ktor/src/main/kotlin/com/malinskiy/adam/transport/ktor/KtorSocket.kt
Show resolved
Hide resolved
transport-ktor/src/main/kotlin/com/malinskiy/adam/transport/ktor/KtorSocket.kt
Show resolved
Hide resolved
transport-ktor/src/main/kotlin/com/malinskiy/adam/transport/ktor/KtorSocket.kt
Show resolved
Hide resolved
server/server-stub/src/main/kotlin/com/malinskiy/adam/server/stub/StubSocket.kt
Show resolved
Hide resolved
server/server-stub/src/main/kotlin/com/malinskiy/adam/server/stub/StubSocket.kt
Show resolved
Hide resolved
server/server-stub/src/main/kotlin/com/malinskiy/adam/server/stub/StubSocket.kt
Show resolved
Hide resolved
server/server-stub/src/main/kotlin/com/malinskiy/adam/server/stub/ServerWriteChannel.kt
Outdated
Show resolved
Hide resolved
server/server-stub/src/main/kotlin/com/malinskiy/adam/server/stub/ServerReadChannel.kt
Outdated
Show resolved
Hide resolved
|
spotless apply problem was due to me not on proper IDE for much easier resolving of errors, I perform spotless Apply but I also rolled back the enforcement of it. I might soon be able to start this once with proper IDE once this lands due to no more old dependencies |
|
Explicit APIs are done too. Going to start entertaining the Code review later on. |
|
oh wait, give priority to dokka |
adam/src/main/kotlin/com/malinskiy/adam/request/framebuffer/ScreenCaptureRequest.kt
Outdated
Show resolved
Hide resolved
|
|
||
| sealed class ReconnectTarget | ||
| object Device : ReconnectTarget() | ||
| public sealed class ReconnectTarget |
There was a problem hiding this comment.
Probably become data object
| public sealed class AdbdMode(public val requestString: String) | ||
| public object RootAdbdMode : AdbdMode("root:") | ||
| public object UnrootAdbdMode : AdbdMode("unroot:") | ||
| public object UsbAdbdMode : AdbdMode("usb:") | ||
| public class TcpIpAdbdMode(port: Int) : AdbdMode("tcpip:$port") |
There was a problem hiding this comment.
Probably change into data object
| package com.malinskiy.adam.request.testrunner.model | ||
|
|
||
| sealed class State(val terminal: Boolean) | ||
| public sealed class State(public val terminal: Boolean) |
| public data class TestStatusAggregator( | ||
| public var statusCode: Status, | ||
| public val logcatBuilder: StringBuilder = StringBuilder(Const.MAX_PROTOBUF_LOGCAT_LENGTH), | ||
| public val metrics: MutableMap<String, String> = mutableMapOf(), | ||
| ) |
There was a problem hiding this comment.
Check if we can make it to remove the var, for immutability
|
/gemini summary |
Summary of ChangesThis pull request undertakes a substantial modernization of the project's core dependencies, updating to the latest stable versions of Kotlin, Coroutines, Ktor, and Vert.x. This necessitated widespread code adjustments to accommodate API changes, particularly in asynchronous I/O and coroutine patterns. Concurrently, the build system received a significant overhaul, introducing new Gradle convention plugins to streamline configuration for Java and Android modules, and to standardize Maven publishing. These changes collectively aim to enhance the project's technical foundation, improve maintainability, and ensure compatibility with the latest ecosystem advancements. Highlights
Changelog
Ignored Files
Activity
|
|
Going to publish to jitpack and Github packages |
|
other changes would be done in another PR |
|
Let's convert this to mkdocs/zensical in another PR |
